Various forms of storage systems are used today. These forms include direct attached storage (DAS) network attached storage (NAS) systems, storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up data and others.
A storage system typically includes at least one computing system executing a storage operating system for storing and retrieving data on behalf of one or more client processing systems (“clients”). The storage operating system stores and manages shared data containers in a set of mass storage devices, such as magnetic or optical disks or tapes.
In traditional storage environments, the operating system is typically geared towards handling access to one object at a time. Access to a group of data containers within a file system is difficult because the operating system layout is such that metadata for data containers, for example, a file name, attributes, access control lists, and information regarding an owner of the data container may not be stored contiguously at a storage device and may be stored at different locations. Therefore, it is difficult for an operating system to respond to user queries for information regarding a data container or a group of data containers because one typically has to traverse through a namespace and perform an extensive directory search. The term namespace refers to a virtual hierarchical collection of unique volume names or identifiers and directory paths to the volumes, in which each volume represents a virtualized container storing a portion of the namespace descending from a single root directory. This is inefficient because metadata information is stored at various locations and also a directory may have a large number of files within a namespace. Continuous efforts are being made to integrate managing data containers and the metadata for the data containers.